#Javascript 严格模式详解

在javascript中获取一个对象内属性的个数

varfoo={a1:'1',a2:'2',a3:'3'};//获得对象所有属性的数组Object.getOwnPropertyNames(foo);>['a1','a2','a3']//获取对象属性的个数Object.getOwnPropertyNames(foo).length;>3getOwnProp...

javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件(三)

在上一篇《javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)》里,通过采用模板方法模式完成了切换效果对象的构建编写。接下来就是完成各效果对象的调用和联动。切换要求:当前图片显示指定时间后执行切换效果并切换下一张图片,最后一个切换后从头开始。按照要求一个效果对象完成后要执行下一个...

javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)

在上一篇《javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)》里,通过采用迭代器模式完成了各初始化函数的定义和调用。接下来就要完成各个切换效果的编写。先思考一下一个切换效果需要完成的操作1.准备阶段,将各个strip归位到动画效果开始的位置。2.动画效果处理。3.执行。3.完成。...

javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)

类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些。比较常用之一的就是窗帘切换了。先贴上完成的效果。   实现原理不复杂,在动的一条一条的称之为“窗帘条”或者是“strip”...

javascript设计模式实践之策略模式--输入验证

策略模式中的策略就是一种算法或者业务规则,将这些策略作为函数进行封装,并向外提供统一的调用执行。先定义一个简单的输入表单:<!DOCTYPEhtml><html><head><metacharset="utf-8"><style>.form{width:400...

画一画javascript原型链

在javascript中,几种数据类型String,Number,Boolean,Object,Function都是函数,可称之为函数对象。可以说拥有prototype属性的都是函数。所有对象都拥有__proto__属性,因为原型链就是靠__proto__的指向进行构建。使用函数,并在该函数前添加new操作符的调用,可...
代码星球 ·2021-02-25

交换排序---快速排序算法(Javascript版)

快速排序是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,最终达到整个数据变成有序序列。假设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数...

交换排序---冒泡排序算法(Javascript版)

比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 functionsort(elements...

选择排序---堆排序算法(Javascript版)

堆排序分为两个过程:1.建堆。堆实质上是完全二叉树,必须满足:树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。堆分为:大根堆和小根堆,升序排序采用大根堆,降序排序采用小根堆。如果是大根堆,则通过调整函数将值最大的节点调整至堆根。2.将堆根保存于尾部,并对剩余序列调用调整函数,调整完成后,...

选择排序---直接选择排序算法(Javascript版)

在要排序的一组数列中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。functionsort(elements){for(i=0;i<elements.length;i...

插入排序---希尔插入排序算法(Javascript版)

取一个小于n的整数作为第一个增量,把序列分组。所有距离为增量的倍数的元素放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量(第二个<第一个)重复上述的分组和排序,直至所取的增量=1,即所有元素放在同一组中进行直接插入排序为止。 一般的初次取序列的一半为增量,以后每次减半,直到增量为1。&nb...

插入排序---直接插入排序算法(Javascript版)

将n个元素的数列分为已有序和无序两个部分。数列:{a1,a2,a3,a4,…,an}将该数列的第一元素视为有序数列,后面都视为无序数列:{{a1},{a2,a3,a4,…,an}}将无序数列中的元素插入到有序数列的对应位置,插入前通过比大小的方式找到其在有序数列中的对应位置。 代码:以下代码在nodejs环境...

详解条件变量

一年多过去啦,一段时间没有posix多线程的东西,又忘记的差不多略,我打记性咋这么差,丝毫记不起来怎么用啦,还是不如烂笔头啊。大家都知道条件变量需要配合mutex一起使用,往往是这样的:lock->signal->unlock, 而另一边呢是:lock->wait->unlock.&n...
代码星球 ·2021-02-25

Merkle Tree算法详解

转载自:http://blog.csdn.net/yuanrxdu/article/details/22474697MerkleTree是Dynamo中用来同步数据一致性的算法,MerkleTree是基于数据HASH构建的一个树。它具有以下几个特点:1、数据结构是一个树,可以是二叉树,也可以是多叉树(本BLOG以二叉树...
代码星球 ·2021-02-25

内存对齐详解

内存对齐,memoryalignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。内存对齐一般讲就是cpuaccessmemory的效率(提高运行速度)和准确性(在一些条件下,如果没有对齐会导致数...
代码星球 ·2021-02-25
首页上一页...34567...下一页尾页